﻿#ifndef QCUSTOMPLOTDEMO1_H
#define QCUSTOMPLOTDEMO1_H

#include <QWidget>
#include "qcustomplot.h"
#include "myplotframe.h"

namespace Ui {
class QCustomPlotDemo1;
}

class QCustomPlotDemo1 : public QWidget
{
    Q_OBJECT

public:
    explicit QCustomPlotDemo1(QWidget *parent = nullptr);
    ~QCustomPlotDemo1();

    void DrawLine(QList<SamplingDataItem> curve,int len);//画实时曲线
    double GetNowStdSpeed(int ind=0);
    void ClearLine();

private:
    Ui::QCustomPlotDemo1 *ui;
    enum graphInd
    {
        /// 标准线上限
        stdUp=0,
        /// 标准线
        stdMid,
        /// 标准线下限
        stdDn,
        /// 实时车速
        nowSpeed,
        /// 实时扭力
        nowForce,
        /// 实时功率
        nowPower,
        /// 枚举结束
        grapEnd
    };
    QCustomPlot *vmasPlot;
    const double axis_x_min=-1.0;//x轴坐标
    const double axis_x_max=30.0;//x轴坐标
    double axis_x_mid;//x轴范围中值
    const double axis_y_min=-3.5;//y轴坐标
    const double axis_y_max=32.0;//y轴坐标
    double axis_y_mid;//y轴范围中值
    QCPItemEllipse *circle; // 指引圆圈
    const double R=0.5;//指引圆圈半径
    QVector<double> VMasHand_x;//手动挡坐标x
    QVector<double> VMasHand_y;//手动挡坐标y
    QVector<double> VMasAutoP_x;//自动挡坐标x
    QVector<double> VMasAutoP_y;//自动挡坐标y
    QString labStr[12];//提示语
    double labAxis[12][2];//提示语坐标
    QCPItemLine **labLine;//提示语控件指引线
    QCPItemText **labText;//提示语控件
    int xValues=0;//x轴点计数
    const int maxPoints = 19500;//画图最大点
    bool mutualColor=false;//颜色互斥变量

    /// 初始化Plot绘图 isAuto是否自动挡
    void InitPlot(bool isAuto=false);//初始化画板
    /// 画提示语 isAuto是否自动挡
    void DrawLab(bool isAuto=false);
};

#endif // QCUSTOMPLOTDEMO1_H
